/**
 * 	write on 2005-10-26 10:52:46.
 */
package org.nanhill.xmlro;

import java.io.Reader;
import java.util.Date;

/**
 * 
 * Xml --> Object
 * 
 * @author alin
 * 
 */
public interface XmlroInput<E> {
	// void next() throws XmlroException;

	// Object parse() throws XmlroException;

	String readString() throws XmlroException;

	void readNull() throws XmlroException;

	Integer readInteger() throws XmlroException;

	Long readLong() throws XmlroException;

	Boolean readBoolean() throws XmlroException;

	Double readDouble() throws XmlroException;

	Date readDate() throws XmlroException;

	Object readList() throws XmlroException;

	Object readMap() throws XmlroException;

	byte[] readBase64() throws XmlroException;

	void assertMapEndTag() throws XmlroException;

	boolean canEndParseMap() throws XmlroException;

	boolean canEndParseArray() throws XmlroException;

	// void assertText() throws XmlroException;

	// boolean isEndDocument() throws XmlroException;

	void setWrap(E wrapType);

	void wrapClz(Class<E> wrapClz);

	void setReader(Reader reader);

	E echo() throws XmlroException;

	// void construct() throws XmlroException;
}
